package com.lanou.service.Impl;

import com.lanou.entity.ConsultantEvaluation;
import com.lanou.mapper.ConsultantEvaluationMapper;
import com.lanou.mapper.MyConsultMapper;
import com.lanou.service.ConsultantEvaluationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.Date;
import java.util.List;

/**
 * @ClassName ConsultantEvaluationServiceImpl
 * @Description TODO
 * @Author chenzhaobao
 * @Date 2025年08月15日 10:01
 * @Version 1.0
 */
@Service
public class ConsultantEvaluationServiceImpl implements ConsultantEvaluationService {
    @Autowired
    private ConsultantEvaluationMapper consultantEvaluationMapper;
    @Autowired
    private MyConsultMapper myConsultMapper;
    @Transactional
    @Override
    public int insert(ConsultantEvaluation consultantEvaluation) {
        // 1. 设置当前评价时间
        consultantEvaluation.setEvaluationTime(new Date());

        // 2. 先插入评价
        int insertNum = consultantEvaluationMapper.insert(consultantEvaluation);

        // 3. 插入成功后，更新对应咨询记录状态
        if (insertNum > 0) {
            myConsultMapper.updateStatus(
                    consultantEvaluation.getMyConsultId(),  // 咨询记录ID
                    "已评价"  // 目标状态
            );
        }

        return insertNum;
    }


    @Override
    public int deleteEvaluationById(Integer id) {
        return consultantEvaluationMapper.deleteEvaluationById(id);
    }

    @Override
    public int updateEvaluation(ConsultantEvaluation consultantEvaluation) {
        return consultantEvaluationMapper.updateEvaluation(consultantEvaluation);
    }

    @Override
    public ConsultantEvaluation selectEvaluationById(Integer id) {
        return consultantEvaluationMapper.selectEvaluationById(id);
    }

    @Override
    public List<ConsultantEvaluation> selectAll() {
        return consultantEvaluationMapper.selectAll();
    }

    @Override
    public List<ConsultantEvaluation> selectByConsultantId(Integer consultantId) {
        return consultantEvaluationMapper.selectByConsultantId(consultantId);
    }
}
